    
    Number.implement.preventOverride= true;
    Number.implementStatic
    (
        {
            /**
             * Determine if a number is whole number greater than zero, or
             * in other words, a positive integer. Zero is not classified as
             * as a whole number.
             * 
             * @param {Object} value
             * @return {Boolean}
             */
            isNatural: function (value) 
            {
                return 0 < value && this.isInteger(value);
            }
            
            /**
             * Determine if a number is a float.
             * @param {Object} value
             */
        ,   isFloat: function (value) 
            {
                return Number.is(value) && Math.ceil(value) != value;
            }
            
            /**
             * Determine if a number is a whole number
             * @param {Object} value
             */
        ,   isInteger: function (value) 
            {
                return Number.is(value) && value === Math.floor(value);
            }
        }
    );
